<?php


namespace App\HttpController;


use EasySwoole\Http\AbstractInterface\Controller;

/**
 * 测试
 *
 * @package App\HttpController
 */
class TestRedis extends Controller
{
    /**
     * 获取redis的配置文件
     *
     * @throws \Throwable
     */
    public function redisconfig()
    {
        ## 正确
        // 取出连接池管理对象，然后获取连接对象（getObject）
        try {
            $instance = \EasySwoole\EasySwoole\Config::getInstance();
            $config   = $instance->getConf('REDIS');
            var_dump($config);

        } catch (\Throwable $e) {

        }
        ## 正确
    }

    public function redispool()
    {
        try {
            ## 正确
            // $redis = \EasySwoole\RedisPool\RedisPool::defer('redis');
            // $redis->set('a', 1, 360000);
            // var_dump($redis->get('a'));
            ## 正确

            ## 正确
            // invoke方式获取连接
            \EasySwoole\RedisPool\RedisPool::invoke(function (\EasySwoole\Redis\Redis $redis) {
                // var_dump($redis->set('ab', 1, 60000));


                $key = "testList";
                $data = ["url" => "123123123"];
                $redis->rPush($key, $data); // 无法直接处理数据数据

                $data = $redis->lPop($key);
                var_dump($data);

            }, "redis", 0);
            ## 正确

            ## 正确
            //获取连接池对象
            // $redisPool = \EasySwoole\RedisPool\RedisPool::getInstance()->getPool('redis');
            // $redis = $redisPool->getObj();
            // $redis->set("redispool", "is_tue", 30402);
            // $redisPool->recycleObj($redis);
            ## 正确

        } catch (\Throwable $e) {
            echo $e->getMessage();
        }

        return $this->response()->write("process success!!");
    }
}